home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 301-325 / disk_315 / surf / gadgetdef.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  15KB  |  726 lines

  1. /* this file contains definition for the screen */
  2.  
  3. #include "scrnio.ih"
  4. #include <exec/memory.h>
  5. #ifdef MANX
  6. #include <functions.h>
  7. #endif
  8.  
  9. #include "scrndef.h"
  10. #include "gadgetdef.h"
  11. #include "mytypes.h"
  12. #include "bezpt.h"
  13. #include "poly.h"
  14. #include "revolve.h"
  15. #include "readilbm.h"
  16.  
  17. /*
  18.  * definition for image of hourglass
  19.  */
  20. static UWORD HourGlassDat[] = {
  21.  0x0, 0x0, 0x0, 0xffff,
  22.  0x7ffe, 0x8001, 0x6006, 0x9ff9,
  23.  0x2004, 0x5ffa, 0x1c38, 0x2ff4,
  24.  0xf70, 0x17e8, 0x7e0, 0xbd0,
  25.  0x2c0, 0x5a0, 0x240, 0x5a0,
  26.  0x420, 0xbd0, 0x910, 0x17e8,
  27.  0x1788, 0x2ff4, 0x2fe4, 0x5ffa,
  28.  0x7ff6, 0x9ff9, 0x7ffe, 0x8001,
  29.  0x0, 0xffff, 0x0, 0x0
  30.  };
  31.  
  32. UWORD *HourGlass = NULL;
  33.  
  34.  
  35.  
  36.  
  37. /*
  38.  * actual gadget definitions
  39.  */
  40. #define TOP 13
  41. #define ROW 9
  42. #define COL 8
  43. #define TxOff 1
  44.        /*
  45.         * start of boolean gadgets
  46.         */
  47. #define BOOLGADFLAGS (RELVERIFY|TOPBORDER)
  48. #define BOOLTOP 0
  49. #define BOOLLEFT 0
  50.  
  51. static struct IntuiText TextDefLines = {
  52.     -1,-1,JAM1, 0, TxOff, NULL,(UBYTE *) "Lines", NULL };
  53.  
  54. static struct Gadget G_DefLines = {
  55.     NULL,
  56.     BOOLLEFT , BOOLTOP , 5*COL, ROW, /* loc and size of hit box */
  57.     GADGHBOX,    /* complemented when pressed */
  58.     BOOLGADFLAGS,    /* just get gadget up messages */
  59.     BOOLGADGET,
  60.     NULL, NULL,
  61.     &TextDefLines,
  62.     0, NULL,
  63.     (int)N_DefLines,
  64.     NULL
  65.  };
  66.  
  67.  
  68. static struct IntuiText TextEditBez = {
  69.     -1,-1,JAM1, 0, TxOff, NULL,(UBYTE *) "Curves", NULL };
  70.  
  71. static struct Gadget G_EditBez = {
  72.     &G_DefLines,
  73.     BOOLLEFT+COL*6, BOOLTOP, 6*COL, ROW, /* loc and size of hit box */
  74.     GADGHBOX,    /* complemented when pressed */
  75.     RELVERIFY,    /* just get gadget up messages */
  76.     BOOLGADGET,
  77.     NULL, NULL,
  78.     &TextEditBez,
  79.     0, NULL,
  80.     (int)N_EditBez,
  81.     NULL
  82.  };
  83.  
  84.  
  85. static struct IntuiText TextMap = {
  86.     -1,-1,JAM1, 0, TxOff, NULL,(UBYTE *) "Map", NULL };
  87.  
  88. static struct Gadget G_Map = {
  89.     &G_EditBez,
  90.     BOOLLEFT +24*COL, BOOLTOP, 3*COL, ROW, /* loc and size of hit box */
  91.     GADGHBOX,    /* complemented when pressed */
  92.     RELVERIFY,    /* just get gadget up messages */
  93.     BOOLGADGET,
  94.     NULL, NULL,
  95.     &TextMap,
  96.     0, NULL,
  97.     (int)N_Map,
  98.     NULL
  99.  };
  100.  
  101.  
  102. static struct IntuiText TextWire = {
  103.     -1,-1,JAM1, 0, TxOff, NULL,(UBYTE *) "Wire", NULL };
  104.  
  105. static struct Gadget G_Wire = {
  106.     &G_Map,
  107.     BOOLLEFT +13*COL, BOOLTOP, 4*COL, ROW, /* loc and size of hit box */
  108.     GADGHBOX,    /* complemented when pressed */
  109.     RELVERIFY,    /* just get gadget up messages */
  110.     BOOLGADGET,
  111.     NULL, NULL,
  112.     &TextWire,
  113.     0, NULL,
  114.     (int)N_Wire,
  115.     NULL
  116.  };
  117.  
  118. static struct IntuiText TextShaded = {
  119.     -1,-1,JAM1, 0, TxOff, NULL,(UBYTE *) "Shade", NULL };
  120.  
  121. static struct Gadget G_Shaded = {
  122.     &G_Wire,
  123.     BOOLLEFT +18*COL, BOOLTOP, 5*COL, ROW, /* loc and size of hit box */
  124.     GADGHBOX,    /* complemented when pressed */
  125.     RELVERIFY,    /* just get gadget up messages */
  126.     BOOLGADGET,
  127.     NULL, NULL,
  128.     &TextShaded,
  129.     0, NULL,
  130.     (int)N_Shaded,
  131.     NULL
  132.  };
  133.  
  134. static struct IntuiText TextGoPanel = {
  135.     -1,-1,JAM1, 0, TxOff, NULL,(UBYTE *) "Panel", NULL };
  136.  
  137. static struct Gadget G_GoPanel = {
  138.     &G_Shaded,
  139.     BOOLLEFT +28*COL, BOOLTOP, 5*COL, ROW, /* loc and size of hit box */
  140.     GADGHBOX,    /* complemented when pressed */
  141.     RELVERIFY,    /* just get gadget up messages */
  142.     BOOLGADGET,
  143.     NULL, NULL,
  144.     &TextGoPanel,
  145.     0, NULL,
  146.     (int)N_GoPanel,
  147.     NULL
  148.  };
  149.  
  150. static struct IntuiText TextGoSurf = {
  151.     1,-1,JAM1, 0, TxOff, NULL,(UBYTE *) "Display", NULL };
  152.  
  153. static short S_GoSurf[] = {
  154.     -2,-1,  -2,ROW+1,  7*COL+2,ROW+1,  7*COL+2,-1, -2,-1
  155.  };
  156.  
  157. static struct Border B_GoSurf = { 0, 0, 1, 0, JAM1, 5, S_GoSurf, NULL };
  158.  
  159. static struct Gadget G_GoSurf = {
  160.     NULL,
  161.     2*COL, TOP, 7*COL, ROW, /* loc and size of hit box */
  162.     GADGHBOX,    /* complemented when pressed */
  163.     RELVERIFY,    /* just get gadget up messages */
  164.     BOOLGADGET,
  165.     (APTR)&B_GoSurf, NULL,
  166.     &TextGoSurf,
  167.     0, NULL,
  168.     (int)N_GoSurf,
  169.     NULL
  170.  };
  171.  
  172.         /*
  173.          * beginning of slider gadgets
  174.          */
  175. #define GadFlags    (GADGIMAGE | GADGHNONE)  /* my gadget flags */
  176. #define MyPropType (PROPGADGET)
  177.  
  178. /*
  179.  *  definitions for the number of Revolution Slices
  180.  */
  181.  
  182. static char DispRevSlices[] = { "Rev Slices=[   ]" };
  183.  
  184. static struct IntuiText TextRevSlices = {
  185.     1,1,JAM1, -sizeof(DispRevSlices)*COL, TxOff, NULL,
  186.     (UBYTE *)DispRevSlices, NULL
  187.  };
  188.  
  189. struct GadExtens VRevSlices = {0.0, 0.0, 0.0, 1, 360, DefRevMeshVal, false };
  190.  
  191. static struct Gadget G_RevSlices = {
  192.     &G_GoSurf,
  193.     COL*57 , TOP+ROW*2, COL*15, ROW, /* loc and size */
  194.     GadFlags,
  195.     RELVERIFY,
  196.     MyPropType,
  197.     NULL,
  198.     NULL , /* high lighted */
  199.     &TextRevSlices,
  200.     0x0,
  201.     NULL,
  202.     (int)N_RevSlices,
  203.     (APTR) &VRevSlices
  204.  };
  205.  
  206. /*
  207.  * definition for the background shade
  208.  */
  209. static char DispBackPlane[] = { "Background = [  ]" };
  210.  
  211. static struct IntuiText TextBackPlane = {
  212.     1,1,JAM1, -sizeof(DispBackPlane)*COL, TxOff, NULL,
  213.     (UBYTE *)DispBackPlane, NULL
  214.  };
  215.  
  216. struct GadExtens VBackPlane = {0.0, 0.0, 0.0, 0, 31, DefBkPlane, false};
  217.  
  218.  
  219. static struct Gadget G_BackPlane = {
  220.     &G_RevSlices,
  221.     COL*57 , TOP+ROW*13, COL*15, ROW, /* loc and size */
  222.     GadFlags,
  223.     RELVERIFY,
  224.     MyPropType,
  225.     NULL,
  226.     NULL , /* high lighted */
  227.     &TextBackPlane,
  228.     0x0,
  229.     NULL,
  230.     (int)N_BackPlane,
  231.     (APTR) &VBackPlane
  232.  };
  233.  
  234.  
  235. /*
  236.  *  definitions for the number of Revolution Angles
  237.  */
  238.  
  239. static char DispRevAngle[] = { "Rev Angle=[   ]" };
  240.  
  241. static struct IntuiText TextRevAngle = {
  242.     1,1,JAM1, -sizeof(DispRevAngle)*COL, TxOff, NULL,
  243.     (UBYTE *)DispRevAngle, NULL
  244.  };
  245.  
  246. struct GadExtens VRevAngle = { 0.0, 0.0, 0.0, 0, 360, DefRotRange, false };
  247.  
  248.  
  249. static struct Gadget G_RevAngle = {
  250.     &G_BackPlane,
  251.     COL*57 , TOP+ROW*3, COL*15, ROW, /* loc and size */
  252.     GadFlags,
  253.     RELVERIFY,
  254.     MyPropType ,
  255.     NULL,
  256.     NULL, /* high lighted */
  257.     &TextRevAngle,
  258.     0x0,
  259.     NULL,
  260.     (int)N_RevAngle,
  261.     (APTR) &VRevAngle
  262.  };
  263. /*
  264.  *  definitions for start rotation angle
  265.  */
  266.  
  267. static char DispRevStart[] = { "Start Angle=[   ]" };
  268.  
  269. static struct IntuiText TextRevStart = {
  270.     1,1,JAM1, -sizeof(DispRevStart)*COL, TxOff, NULL,
  271.     (UBYTE *)DispRevStart, NULL
  272.  };
  273.  
  274. struct GadExtens VRevStart = { 0.0, 0.0, 0.0, 0, 360, DefRotStart, false };
  275.  
  276.  
  277. static struct Gadget G_RevStart = {
  278.     &G_RevAngle,
  279.     COL*57 , TOP+ROW*4, COL*15, ROW, /* loc and size */
  280.     GadFlags,
  281.     RELVERIFY,
  282.     MyPropType ,
  283.     NULL,
  284.     NULL, /* high lighted */
  285.     &TextRevStart,
  286.     0x0,
  287.     NULL,
  288.     (int)N_RevStart,
  289.     (APTR) &VRevStart
  290.  };
  291.  
  292. /*
  293.  *  definitions for the number of Bezier Slices
  294.  */
  295.  
  296. static char DispBezSlices[] = { "Bez Slices=[   ]" };
  297.  
  298. static struct IntuiText TextBezSlices = {
  299.     1,1,JAM1, -sizeof(DispBezSlices)*COL, TxOff, NULL,
  300.     (UBYTE *)DispBezSlices, NULL
  301.  };
  302.  
  303.  
  304. struct GadExtens VBezSlices = { 0.0, 0.0, 0.0, 1, 100, DefBezMeshVal, false };
  305.  
  306. static struct Gadget G_BezSlices = {
  307.     &G_RevStart,
  308.     COL*20 , TOP+ROW*2, COL*15, ROW, /* loc and size */
  309.     GadFlags,
  310.     RELVERIFY,
  311.     MyPropType ,
  312.     NULL,
  313.     NULL, /* high lighted */
  314.     &TextBezSlices,
  315.     0x0,
  316.     NULL,
  317.     (int)N_BezSlices,
  318.     (APTR)&VBezSlices
  319.  };
  320.  
  321. /*
  322.  *  definitions for tilt angle
  323.  */
  324.  
  325. static char DispTiltAng[] = { "Tilt Angle=[   ]" };
  326.  
  327. static struct IntuiText TextTiltAng = {
  328.     1,1,JAM1, -sizeof(DispTiltAng)*COL, TxOff, NULL,
  329.     (UBYTE *)DispTiltAng, NULL
  330.  };
  331.  
  332.  
  333. struct GadExtens VTiltAng = { 0.0, 0.0, 0.0, 0, 360, DefTilt, false };
  334.  
  335. static struct Gadget G_TiltAng = {
  336.     &G_BezSlices,
  337.     COL*20 , TOP+ROW*3, COL*15, ROW, /* loc and size */
  338.     GadFlags,
  339.     RELVERIFY,
  340.     MyPropType ,
  341.     NULL,
  342.     NULL, /* high lighted */
  343.     &TextTiltAng,
  344.     0x0,
  345.     NULL,
  346.     (int)N_TiltAng,
  347.     (APTR) &VTiltAng
  348.  };
  349.  
  350.  
  351. /*
  352.  * definitions for K Specular
  353.  */
  354.  
  355. static char DispKspec[] = {"Kspecular=[     ] " };
  356.  
  357. static struct IntuiText TextKspec = {
  358.     1,1,JAM1, -sizeof(DispKspec)*COL, TxOff, NULL,
  359.     (UBYTE *)DispKspec, NULL
  360.  };
  361.  
  362.  
  363. struct GadExtens VKspec = { 0.0, 1.0, DefKs, 0, 0, 0, true };
  364.  
  365. static struct Gadget G_Kspec = {
  366.     &G_TiltAng,
  367.     49*COL , TOP+ROW*9, COL*15, ROW, /* loc and size */
  368.     GadFlags,
  369.     RELVERIFY,
  370.     MyPropType ,
  371.     NULL,
  372.     NULL, /* high lighted */
  373.     &TextKspec,
  374.     0x0,
  375.     NULL,
  376.     (int)N_Kspec,
  377.     (APTR) &VKspec
  378.  };
  379.  
  380. /*
  381.  * definitions for K diffuse
  382.  */
  383.  
  384. static char DispKdiffuse[] = {"Kdiffuse=[     ] " };
  385.  
  386. static struct IntuiText TextKdiffuse = {
  387.     1,1,JAM1, -sizeof(DispKdiffuse)*COL, TxOff, NULL,
  388.     (UBYTE *)DispKdiffuse, NULL
  389.  };
  390.  
  391.  
  392. struct GadExtens VKdiffuse = { 0.0, 1.0, DefKd, 0, 0, 0, true };
  393.  
  394. static struct Gadget G_Kdiffuse = {
  395.     &G_Kspec,
  396.     49*COL , TOP+ROW*10, COL*15, ROW, /* loc and size */
  397.     GadFlags,
  398.     RELVERIFY,
  399.     MyPropType ,
  400.     NULL,
  401.     NULL, /* high lighted */
  402.     &TextKdiffuse,
  403.     0x0,
  404.     NULL,
  405.     (int)N_Kdiffuse,
  406.     (APTR) &VKdiffuse
  407.  };
  408.  
  409.  
  410.  
  411. /*
  412.  * definitions for DispPtIntens
  413.  */
  414.  
  415.  
  416. static struct IntuiText PtProperties = {
  417.     1,1,JAM1, -10*COL, -ROW, NULL,
  418.     (UBYTE *)"Properties", NULL
  419.  };
  420.  
  421. static char DispPtIntens[] = {"Intensity=[     ] " };
  422.  
  423. static struct IntuiText TextPtIntens = {
  424.     1,1,JAM1, -sizeof(DispPtIntens)*COL, TxOff, NULL,
  425.     (UBYTE *)DispPtIntens, &PtProperties
  426.  };
  427.  
  428.  
  429. struct GadExtens VPtIntens = { 0.0, 2.5, DefIntensity , 0, 0, 0, true };
  430.  
  431. static struct Gadget G_PtIntens = {
  432.     &G_Kdiffuse,
  433.     49*COL , TOP+ROW*8, COL*15, ROW, /* loc and size */
  434.     GadFlags,
  435.     RELVERIFY,
  436.     MyPropType ,
  437.     NULL,
  438.     NULL, /* high lighted */
  439.     &TextPtIntens,
  440.     0x0,
  441.     NULL,
  442.     (int)N_PtIntens,
  443.     (APTR) &VPtIntens
  444.  };
  445.  
  446.  
  447.  
  448.  
  449. /*
  450.  * definitions for background intensity
  451.  */
  452. static struct IntuiText DispAmbient= {
  453.     1,1,JAM1,- COL*3, -ROW, NULL,
  454.     (UBYTE *) "Other", NULL
  455.  };
  456.  
  457. static char DispBkIntens[] = { "Ambience=[     ] " };
  458.  
  459. static struct IntuiText TextBkIntens = {
  460.     1,1,JAM1, -sizeof(DispBkIntens)*COL, TxOff, NULL,
  461.     (UBYTE *) DispBkIntens, &DispAmbient
  462.  };
  463.  
  464. struct GadExtens VBkIntens = { 0.0, 1.0, DefAmbience, 0, 0, 0, true };
  465.  
  466.  
  467. static struct Gadget G_BkIntens = {
  468.     &G_PtIntens,
  469.     20*COL , TOP+ROW*13, COL*15, ROW, /* loc and size */
  470.     GadFlags,
  471.     RELVERIFY,
  472.     MyPropType,
  473.     NULL,
  474.     NULL, /* high lighted */
  475.     &TextBkIntens,
  476.     0x0,
  477.     NULL,
  478.     (int)N_BkIntens,
  479.     (APTR)&VBkIntens
  480.  };
  481.  
  482.  
  483.  
  484.  
  485. /*
  486.  * Definitions for Surface distance
  487.  */
  488.  
  489. static char DispSurfDist[] = {"Surf Dist=[     ] " };
  490.  
  491. static struct IntuiText TextSurfDist = {
  492.     1,1,JAM1, -sizeof(DispSurfDist)*COL, TxOff, NULL,
  493.     (UBYTE *) DispSurfDist, NULL
  494.  };
  495.  
  496.  
  497. struct GadExtens VSurfDist = {0.0, 0.0, 0.0, -500, 3000, DefSurfDist, false};
  498.  
  499. static struct Gadget G_SurfDist = {
  500.     &G_BkIntens,
  501.     20*COL , TOP+ROW*4, COL*15, ROW, /* loc and size */
  502.     GadFlags,
  503.     RELVERIFY,
  504.     MyPropType,
  505.     NULL,
  506.     NULL, /* high lighted */
  507.     &TextSurfDist,
  508.     0x0,
  509.     NULL,
  510.     (int)N_SurfDist,
  511.     (APTR)&VSurfDist
  512.  };
  513.  
  514.  
  515.  
  516.  
  517. /*
  518.  * definitions for location.x
  519.  */
  520. static struct IntuiText PointLight = {
  521.     1,1,JAM1, 9*COL, -ROW*2, NULL,
  522.     (UBYTE *) "Point Light Source", NULL
  523.  };
  524.  
  525. static struct IntuiText TextPtLocXYZ = {
  526.     1,1,JAM1, -4, -ROW, NULL,
  527.     (UBYTE *) "Location", &PointLight
  528.  };
  529.  
  530. static char DispPtLocX[] = { "x=[     ] " };
  531.  
  532. static struct IntuiText TextPtLocX = {
  533.     1,1,JAM1, -sizeof(DispPtLocX)*COL, TxOff, NULL,
  534.     (UBYTE *) DispPtLocX, &TextPtLocXYZ
  535.  };
  536.  
  537.  
  538. struct GadExtens VPtLocX = {0.0, 0.0, 0.0, -6000, 6000, DefLightSrcX, false };
  539.  
  540. static struct Gadget G_PtLocX = {
  541.     &G_SurfDist,
  542.     12*COL , TOP+ROW*8, COL*15, ROW, /* loc and size */
  543.     GadFlags,
  544.     RELVERIFY,
  545.     MyPropType,
  546.     NULL,
  547.     NULL, /* high lighted */
  548.     &TextPtLocX,
  549.     0x0,
  550.     NULL,
  551.     (int)N_PtLocX,
  552.     (APTR) &VPtLocX
  553.  };
  554.  
  555.  
  556.  
  557. /*
  558.  * definitions for location.x
  559.  */
  560.  
  561. static char DispPtLocY[] = "y=[     ] ";
  562.  
  563. static struct IntuiText TextPtLocY = {
  564.     1,1,JAM1, -sizeof(DispPtLocY)*COL, TxOff, NULL,
  565.     (UBYTE *) DispPtLocY, NULL
  566.  };
  567.  
  568.  
  569. struct GadExtens VPtLocY = { 0.0, 0.0, 0.0, -6000, 6000, DefLightSrcY, false };
  570.  
  571. static struct Gadget G_PtLocY = {
  572.     &G_PtLocX,
  573.     12*COL , TOP+ROW*9, COL*15, ROW, /* loc and size */
  574.     GadFlags,
  575.     RELVERIFY,
  576.     MyPropType,
  577.     NULL,
  578.     NULL, /* high lighted */
  579.     &TextPtLocY,
  580.     0x0,
  581.     NULL,
  582.     (int)N_PtLocY,
  583.     (APTR) &VPtLocY
  584.  };
  585.  
  586.  
  587.  
  588.  /*
  589.   * definitions for location.z
  590.   */
  591.  
  592. static char DispPtLocZ[] = { "z=[     ] " };
  593.  
  594. static struct IntuiText TextPtLocZ = {
  595.     1,1,JAM1, -sizeof(DispPtLocZ)*COL, TxOff, NULL,
  596.     (UBYTE *)DispPtLocZ, NULL
  597.  };
  598.  
  599.  
  600. struct GadExtens VPtLocZ ={ 0.0, 0.0, 0.0, -1000, 3000, DefLightSrcZ, false };
  601.  
  602. static struct Gadget G_PtLocZ = {
  603.     &G_PtLocY,
  604.     12*COL , TOP+ROW*10, COL*15, ROW, /* loc and size */
  605.     GadFlags,
  606.     RELVERIFY,
  607.     MyPropType,
  608.     NULL,
  609.     NULL, /* high lighted */
  610.     &TextPtLocZ,
  611.     0x0,
  612.     NULL,
  613.     (int)N_PtLocZ,
  614.     (APTR) &VPtLocZ
  615.  };
  616.  
  617.  /*
  618.   * definitions for Map replication in horizontal axis
  619.   */
  620.  
  621. static char DispRepH[] = { "Map RepH=[     ] " };
  622.  
  623. static struct IntuiText TextRepH = {
  624.     1,1,JAM1, -sizeof(DispRepH)*COL, TxOff, NULL,
  625.     (UBYTE *)DispRepH, NULL
  626.  };
  627.  
  628.  
  629. struct GadExtens VRepH ={ 0.0, 0.0, 0.0, 1, 300, DefRepH, false };
  630.  
  631. static struct Gadget G_RepH = {
  632.     &G_PtLocZ,
  633.     20*COL , TOP+ROW*15, COL*15, ROW, /* loc and size */
  634.     GadFlags,
  635.     RELVERIFY,
  636.     MyPropType,
  637.     NULL,
  638.     NULL, /* high lighted */
  639.     &TextRepH,
  640.     0x0,
  641.     NULL,
  642.     (int)N_RepH,
  643.     (APTR) &VRepH
  644.  };
  645.  
  646.  
  647.  /*
  648.   * definitions for map replication in vertical axis
  649.   */
  650.  
  651. static char DispRepV[] = { "Map RepV=[     ] " };
  652.  
  653. static struct IntuiText TextRepV = {
  654.     1,1,JAM1, -sizeof(DispRepV)*COL, TxOff, NULL,
  655.     (UBYTE *)DispRepV, NULL
  656.  };
  657.  
  658.  
  659. struct GadExtens VRepV ={ 0.0, 0.0, 0.0, 1, 300, DefRepV, false };
  660.  
  661. static struct Gadget G_RepV = {
  662.     &G_RepH,
  663.     57*COL , TOP+ROW*15, COL*15, ROW, /* loc and size */
  664.     GadFlags,
  665.     RELVERIFY,
  666.     MyPropType,
  667.     NULL,
  668.     NULL, /* high lighted */
  669.     &TextRepV,
  670.     0x0,
  671.     NULL,
  672.     (int)N_RepV,
  673.     (APTR) &VRepV
  674.  };
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681. LoadChipMem( dest, src, srcsize)
  682.     UWORD **dest;
  683.     UWORD *src;
  684.     int srcsize;
  685. {
  686.     UWORD *d;
  687.  
  688.     d = (UWORD *)AllocMem( srcsize, MEMF_CHIP );
  689.     if( !d ) {
  690.         OutErr("not enough chip mem");
  691.         CloseDisplay();
  692.         exit(-1);
  693.     }
  694.     *dest = d;
  695.     while( srcsize ) {
  696.         *d++ = *src++;
  697.         srcsize -= sizeof( UWORD );
  698.     }
  699. }
  700.  
  701.  
  702. void InitGadgets()
  703. {
  704.     struct Gadget *vp;
  705.     LoadChipMem( &HourGlass, HourGlassDat, sizeof(HourGlassDat));
  706.  
  707.  
  708.     CntrlWinDef.FirstGadget = &G_RepV;
  709.     GadWinDef.FirstGadget = &G_GoPanel;
  710.     /*
  711.      * fill in numeric fields
  712.      */
  713.     for( vp = CntrlWinDef.FirstGadget; vp; vp = vp->NextGadget ) {
  714.         GadgetSetVal( vp );
  715.         GadgetUpdate(vp, false );
  716.     }
  717. }
  718.  
  719.  
  720. void EndGadgets()
  721. {
  722.     if( HourGlass ) {
  723.         FreeMem(HourGlass, sizeof(HourGlassDat ));
  724.     }
  725. }
  726.